package com.bitcola.exchange.push.http;

import okhttp3.*;

import java.io.IOException;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class OKHttpUtil {

	public static String num2ip(int ip) {
		int[] b = new int[4];
		String x = "";

		b[0] = (int) ((ip >> 24) & 0xff);
		b[1] = (int) ((ip >> 16) & 0xff);
		b[2] = (int) ((ip >> 8) & 0xff);
		b[3] = (int) (ip & 0xff);
		x = Integer.toString(b[0]) + "." + Integer.toString(b[1]) + "."
				+ Integer.toString(b[2]) + "." + Integer.toString(b[3]);

		return x;
	}
	public static String getRandomIp() {
//ip范围
		int[][] range = { { 607649792, 608174079 },//36.56.0.0-36.63.255.255
				{ 1038614528, 1039007743 },//61.232.0.0-61.237.255.255
				{ 1783627776, 1784676351 },//106.80.0.0-106.95.255.255
				{ 2035023872, 2035154943 },//121.76.0.0-121.77.255.255
				{ 2078801920, 2079064063 },//123.232.0.0-123.235.255.255
				{ -1950089216, -1948778497 },//139.196.0.0-139.215.255.255
				{ -1425539072, -1425014785 },//171.8.0.0-171.15.255.255
				{ -1236271104, -1235419137 },//182.80.0.0-182.92.255.255
				{ -770113536, -768606209 },//210.25.0.0-210.47.255.255
				{ -569376768, -564133889 }, //222.16.0.0-222.95.255.255
		};

		Random rdint = new Random();
		int index = rdint.nextInt(10);
		String ip = num2ip(range[index][0]
				+ new Random().nextInt(range[index][1] - range[index][0]));
		return ip;
	}
	/**
	 * 发起get请求
	 * 
	 * @param url
	 * @return
	 */
	public static String httpGet(String url) {
		String result = null;
		OkHttpClient client = new OkHttpClient();
		Request request = new Request.Builder().url(url).header("x-real-ip",getRandomIp()).build();

		try {
			Response response = client.newCall(request).execute();
			result = response.body().string();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}
 
	/**
	 * 发送httppost请求
	 * @param url
	 * @param data  提交的参数为key=value&key1=value1的形式
	 * @return
	 */
	public static String httpPost(String url, String data) {
		String result = null;
		OkHttpClient httpClient = new OkHttpClient();
		RequestBody requestBody = RequestBody.create(MediaType.parse("text/html;charset=utf-8"), data);
		Request request = new Request.Builder().url(url).post(requestBody).build();
		try {
			Response response = httpClient.newCall(request).execute();
			result = response.body().string();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return result;
	}




	public static void main(String []s) throws InterruptedException {

		ExecutorService pool = Executors.newFixedThreadPool(2000);

		while (true) {

			for (int i = 0; i <50 ; i++) {
				pool.submit(()->{
					long end = System.currentTimeMillis() - new Random().nextInt(50000);
					long start = end - 20 * 24 * 60 * 60 * 1000 - new Random().nextInt(50000);
					String url = String.format("http://218.95.37.138:8765/api/v2/kline?pair=BTC_USDT&start=%s&end=%s&limit=2000&type=5m", start, end);
					String content = httpGet(url);
					System.out.println(content);

				});
			}

			Thread.sleep(5000);
		}


	}
}
